#include "SDisplayContext.h"
#include "SNativeImage.h"
#include "SRawImage.h"

using namespace WONAPI;

///////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////
SDisplayContext::SDisplayContext()
{
	mDC = NULL;
}

///////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////
SDisplayContext::SDisplayContext(SurfaceBase *theSurface) : mSurface(theSurface)
{
	mDC = NULL;
}

///////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////
SDisplayContext::SDisplayContext(HDC theDC) : mDC(theDC)
{
}

///////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////
NativeImagePtr SDisplayContext::CreateImage(int theWidth, int theHeight)
{
	return new SNativeImage(this,theWidth,theHeight);
}

///////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////
RawImage1Ptr SDisplayContext::CreateRawImage1(int theWidth, int theHeight)
{
	return new SRawImage1(theWidth,theHeight);
}

///////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////
RawImage8Ptr SDisplayContext::CreateRawImage8(int theWidth, int theHeight, Palette *thePalette)
{
	return new SRawImage8(theWidth,theHeight,thePalette);
}

///////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////
RawImage32Ptr SDisplayContext::CreateRawImage32(int theWidth, int theHeight)
{
	return new SRawImage32(theWidth,theHeight);
}
